Call centers have become a popular means for providing operator and customer services for businesses. A call center is a logical organization of telephony resources that serves as a focal point for receiving customers' telephone calls and for providing manual or automatic services to callers in response to such calls. A service may be, for example, operator services provided by a phone company for special feature calls, or customer services provided by a manufacturing company for a product they offer.
In many call centers, computers, often in the form of operator consoles and audio response units, are used to automate many services. Service applications are software programs that run on these computers and provide automated services. Like other software programs, these service applications are continuously under development and require frequent testing. Each new service or product offered, or enhancement to an existing service or product, requires that new versions of each application that runs on call center computers be developed and tested. One necessary component of testing includes regression testing. Testing a new version of a service application involves testing the functions performed by previous versions and is called "regression testing."
For example, if a service application is executed on an operator console to process a collect call, and a new feature is added to the collect calling service, then a new version of the service application must be developed that provides the new feature. In addition to testing for the capabilities required for the new feature, this new version must also undergo regression testing to ensure that it can correctly provide the features provided by the previous version, since it would not be acceptable for the new version to function properly in servicing the new feature of the collect calling service, but fail in servicing the existing features.
Conventional methods for regression testing of new service applications require that a new testing system be developed for each new version or "release," of an application, which can quickly become very cumbersome and expensive. Other conventional regression testing methods record user input and screen displays of applications in process, and then replay these for new releases to regression test. However, these testing applications are generally intrusive, interrupting the processing of the service application at various points. Also, because these testing limitations are limited to recording user input and screen displays, they could not capture many kinds of data and processes that were vital to complete testing, such as background processing, database queries, and internal data writes.